A large number of packet processing applications involve a dataflow that consists of a sequence of memory references and a modest amount of computation after each reference. Such applications include, for example, prefix matching, finite automata, etc., in which various locations in memory are read, data are processed and sometimes new data are written back repeatedly. Relatively large data structures at high packet rates may require several hundred megabytes (Mbytes) of memory and several billion memory references per second. Typically, commodity memory vendors optimize their pins and memory input/outputs (I/Os) for the personal computer (PC) and server business, which may reduce the performance of network systems using these memories. Both packet rates and the number of functions in the network are increasing consistently, requiring ever more bandwidth. High performance systems face challenges due to the pressure on memory and interconnection/interface bandwidth.